package pruebas.JTabbedPane;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.net.URL;
import javax.swing.AbstractButton;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class PruebaJButton extends JPanel implements ActionListener {
	protected static JButton jbnLeft, jbnMiddle, jbnRight;
	
	
	public PruebaJButton() {
			// Create Icons that can be used with the jButtons
			ImageIcon leftButtonIcon = createImageIcon("rightarrow.JPG");
			ImageIcon middleButtonIcon = createImageIcon("java-swing-tutorial.JPG");
			ImageIcon rightButtonIcon = createImageIcon("leftarrow.JPG");
			jbnLeft = new JButton("Disable centre button", leftButtonIcon);
			jbnLeft.setVerticalTextPosition(AbstractButton.CENTER);
			jbnLeft.setHorizontalTextPosition(AbstractButton.LEADING);
			jbnLeft.setMnemonic(KeyEvent.VK_D);
			// Alt-D clicks the button
			jbnLeft.setActionCommand("disable");
			jbnLeft.setToolTipText("disable the Centre button."); // Adding Tool
										// tips
			jbnMiddle = new JButton("Centre button", middleButtonIcon);
			jbnMiddle.setVerticalTextPosition(AbstractButton.BOTTOM);
			jbnMiddle.setHorizontalTextPosition(AbstractButton.CENTER);
			jbnMiddle.setMnemonic(KeyEvent.VK_M);
			// Alt-M clicks the button
			jbnMiddle.setToolTipText("Centre button");
			jbnRight = new JButton("Enable centre button", rightButtonIcon);
			// Use the default text position of CENTER, TRAILING (RIGHT).
			jbnRight.setMnemonic(KeyEvent.VK_E);
			// Alt-E clicks the button
			jbnRight.setActionCommand("enable");
			jbnRight.setEnabled(false);
			// Disable the Button at creation time
			// Listen for actions on Left and Roght Buttons
			jbnLeft.addActionListener(this);
			jbnRight.addActionListener(this);
			jbnRight.setToolTipText("Enable the Centre button.");
			// Add Components to the frame, using the default FlowLayout.
			add(jbnLeft);
			add(jbnMiddle);
			add(jbnRight);
		}
		public void actionPerformed(ActionEvent e) {
			if ("disable".equals(e.getActionCommand())) {
				jbnMiddle.setEnabled(false);
				jbnLeft.setEnabled(false);
				jbnRight.setEnabled(true);
			} else {
				jbnMiddle.setEnabled(true);
				jbnLeft.setEnabled(true);
				jbnRight.setEnabled(false);
			}
		}
		// Returns an ImageIcon, or null if the path was invalid.
		protected static ImageIcon createImageIcon(String path) {
			URL imgURL = PruebaJButton.class.getResource(path);
			if (imgURL != null) {
				return new ImageIcon(imgURL);
			} else {
				System.err.println("Couldn't find image in system: " + path);
				return null;
			}
		}
		// Create the GUI and show it.
		private static void createGUI() {
			JFrame.setDefaultLookAndFeelDecorated(true);
			// Create and set up the frame.
			JFrame frame = new JFrame("jButton usage demo");
			frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			// Create and set up the content pane.
			PruebaJButton buttonContentPane = new PruebaJButton();
			buttonContentPane.setOpaque(true); // content panes must be opaque
			frame.getRootPane().setDefaultButton(jbnLeft);
			frame.setContentPane(buttonContentPane);
			// Display the window.
			frame.pack();
			frame.setVisible(true);
		}
		public static void main(String[] args) {
			javax.swing.SwingUtilities.invokeLater(new Runnable() {
				                                      public void run() {
					                                     createGUI();
				                                      }
			                                       }
		    );
		}
}
